Issues in Performing and Automating the “Extract Method Calls” Refactoring
نویسندگان
چکیده
A large part of converting a pre-AOP application into an aspect-oriented one consists, next to aspect mining, out of aspect refactoring. One such aspect refactoring named “Extract Method Calls” refactoring [11, 17] transforms certain crosscutting concerns which are implemented by calls to a single method into an aspect by turning the called method into an advice and all the calls to that method into a crosscut. In this paper we present the Joinpoint Choice Problem and the Flattened Expression Problem. Both problems are inherent to the joinpoint models as used by current-day weavers and can have a negative impact on the maintainability and evolvability of the crosscuts resulting from performing the “Extract Method Calls” refactoring either by hand or automatically. As a solution to the Joinpoint Choice Problem, we propose an algorithm for calculating the appropriate crosscut. In order to solve the Flattened Expression Problem, we introduce a new language construct named the “statement joinpoint”. In section 2 we describe the “Extract Method Calls” refactoring. Section 3 we present the Joinpoint Choice Problem and Flattened Expression Problem. We discuss solutions for these problems in section 4. After presenting some related work and research directions for the future (section 5),
منابع مشابه
Composite Refactorings: The Next Refactoring Rubicons
The industry crossed the first refactoring rubicon, namely Extract Method, more than a decade ago. Today, all mainstream Integrated Development Environments (IDEs) support this refactoring, and empirical studies have shown that Extract Method is one of the most frequently used automated refactorings. Although complex refactorings are more tedious and error-prone, studies have shown that program...
متن کاملAutomating Feature-Oriented Refactoring of Legacy Applications
Creating a software product line from a legacy application is a difficult task. We propose a tool that helps automating tedious tasks of refactoring legacy applications into features and frees the developer from the burden of performing laborious routine implementations.
متن کاملObject-to-Aspect Refactorings for Feature Extraction
This report describes an experiment in using AspectJ to extract a feature from a Java code base in order to make it unpluggable. We describe issues and obstacles encountered while performing a series of code transformations and next present a collection of manual aspect-oriented refactorings, based on the experience gained in the process. These are described in detail and compounded with a self...
متن کاملImproving Software Modularity through Crosscutting Concern Extraction
Aspect-oriented programming (AOP) is a programming paradigm for improving the modularity of software systems by localizing crosscutting concerns in the system into aspects. Aspect-oriented refactorings extend AOP to legacy systems, by identifying and encapsulating existing crosscutting concerns through aspect-mining (discovery of crosscutting concerns) and aspect refactoring (semantic-preservin...
متن کاملRefactoring Tools for Extreme Programming: An Overview
2 Refactoring Research 3 2.1 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Automating Refactorings . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Automating “Smell Detection” . . . . . . . . . . . . . . . . . . . 6 2.4 Relationship to Extreme Programming . . . . . . . . . . . . . . . 8 2.5 Other Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005